# 列表
# 定义一个空列表 list = []
emmpty_list = []
print(f"type of empty_list {type(emmpty_list)}")

emmpty_list = ["马云" ,"马化腾" ,"liao老师"]
print(emmpty_list)

#列表的访问，下标，从0开始
print(f"value: {emmpty_list[0]}")
print(f"value: {emmpty_list[1]}")
print(f"value: {emmpty_list[2]}")

# 异常的访问
# print(f"value: {emmpty_list[3]}")

# 增加一个数据
emmpty_list.append("许家印")
print(emmpty_list)

# 截取 列表子列表格式就是[最开始索引：结束索引（不包含）：步长]
print(emmpty_list[0:3:2])
print(emmpty_list[1:4:2])
print(emmpty_list[1:3:2])
# 列表的翻转
emmpty_list.reverse()
print(emmpty_list)

# 二维列表
two_list = [
    [1,2,3],
    [4,5,6],
    [7,8,9]

]

print(two_list)
print(two_list[0])
print(two_list[1])
print(two_list[2])

# 列表的长度
print(len(two_list))

# 求 最小值
test_value = [1,45,56,7,6,4,666,78,3334,11]
print(f"最小值：{min(test_value)}")

# 求 最大值
print(f"最大值：{max(test_value)}")

# 删除 列表里面的元素 格式：del list[要删除的元素下标]
del test_value[1]
print(test_value)

# 修改数据
test_value[0] = 2
print(test_value)

# 判断列表里面是否有某个元素
print(78 in test_value)
print(33 in test_value)

# print(33 in test_value)
# print(78 in test_value)
# print(78 in test_value)
# test_value[0] = 2

# 通过insert 去插入元素
test_value.insert(5,888777)
print(test_value)

# 通过元素值去找索引。如果多个元素一样，返回第一个元素索引
print(test_value.index(7))
test_value2 = [1,2,2,2,3,3,3,55,67,78,333,555]
print(test_value2.index(3))
print(test_value2.index(55))

# 将列表里面元素进行升序排列
test_value2.sort()
print(test_value2)

# 降序排列
test_value2.reverse()
print(test_value2)
# # 降序排列
# test_value2.reverse()
# print(test_value2)